字符串
一、字符串基础
1. 核心特点
字符串是字符序列,Python无单字符类型,单个字符也是字符串。
不可变:不能直接修改原字符串内容,修改只能生成新字符串。
编码:Python3默认
Unicodeord(字符):字符→Unicode数字chr(数字):数字→字符
print(ord('A'), chr(66))
print(ord('高'))二、字符串定义方式
1. 单引号/双引号
a = "I'm a teacher!" b = 'my_name is "TOM"' print(a, b)
2. 三引号''' / """:多行字符串,保留换行
s = ''' I Love Python ''' print(s)
3. 空字符串 & len()
c = "" print(len(c)) d = "abc尚学堂" print(len(d))
三、转义字符 \
| 转义符 | 功能 |
|---|---|
| \n | 换行 |
| \t | 制表符 |
| \ | 输出反斜杠 |
| ' " | 输出引号 |
a = 'I\nlove\nU'
print(a)
print('aabb\\cc')四、拼接、复制
1. +拼接(仅限字符串之间)
s1 = "sxt"+"gaoqi" s2 = "sxt""gaoqi" print(s1)
2. *重复复制
res = "Sxt" * 3 print(res)
五、控制台输入与不换行打印
# end 修改末尾符号
print("sxt", end=' ')
print("sxt", end='##')
# input获取输入
name = input("请输入姓名:")
print(name)六、索引取值 & replace替换
1. []索引:正向0开始,反向-1开始
a = "abcdef" print(a[0], a[-1]) # a[2] = 'x' 报错:字符串不可修改
2. replace()生成新字符串实现替换
a = 'abcdef'
a = a.replace('c','高')
print(a)3. str():任意数据转字符串
print(str(5.20), str(True))
七、切片 [start:end:step]
规则:左闭右开,取start,不取end
s = "abcdefghijklmnopqrstuvwxyz" print(s[:]) # 全部 print(s[2:]) # 从下标2到末尾 print(s[:2]) # 开头到下标1 print(s[2:4]) # [2,3] print(s[-3:]) # 最后三位 print(s[::-1]) # 字符串反转
八、split分割 / join拼接
split():字符串→列表,默认空格分隔
str1 = "to be or not to be" li = str1.split() print(li)
join():列表→字符串,海量拼接优先join,效率高于+
lst = ['sxt','sxt100','sxt200'] new_str = "*".join(lst) print(new_str)
九、驻留机制 & in成员运算
# 常量字符串驻留,地址相同
c = "dd#"
d = "dd#"
print(c is d)
# in 判断包含
print("ab" in "abcdef")十、字符串常用方法
1. 查询方法
text = "我是高淇,在北京尚学堂上班"
print(len(text))
print(text.startswith("我是高淇"))
print(text.endswith("上班"))
print(text.find("高"))
print(text.rfind("高"))
print(text.count("编程"))2. 去除首尾字符 strip/lstrip/rstrip
s = "*s*x*t*"
print(s.strip("*"))
print(s.lstrip("*"))
print(s.rstrip("*"))3. 大小写转换
a = "gaoqi love programming, love SXT" print(a.capitalize()) #首字母大写 print(a.title()) #单词首字母大写 print(a.upper()) #全大写 print(a.lower()) #全小写 print(a.swapcase()) #大小写互换
4. 对齐排版 center/ljust/rjust
s = "SXT" print(s.center(10,"*")) print(s.ljust(10,"*"))
5. 判断方法 is系列
print("sxt100".isalnum())
print("1234".isdigit())
print("ABC".isupper())十一、format格式化
1. 基础占位
# 下标占位
s1 = "名字:{0},年龄:{1}".format("高淇",18)
# 关键字占位
s2 = "名字:{name},年龄:{age}".format(name='小高',age=6)
print(s1,s2)2. 填充对齐 ><^
print("{:*>8}".format("245")) #右对齐
print("{:*^8}".format("666"))#居中3. 数字格式化
res = "存款:{:.2f}".format(3888.2343)
print(res)十二、可变字符串(io.StringIO)
原生str不可变,借助io实现原地修改
import io
s = "hello, sxt"
sio = io.StringIO(s)
sio.seek(7)
sio.write("gaoqi")
print(sio.getvalue())十三、常用类型转换
#字符与编码转换
print(chr(65), ord('A'))
#进制转换
print(hex(12), oct(12))
#字符串转进制数字
print(int('1010',2))上一篇:序列
下一篇:python基础概念


